/**
 * 
 */
package co.edu.poligran.cluseva.medidas.evaluacion;

import co.edu.poligran.cluseva.distancias.Distancia;
import co.edu.poligran.cluseva.distancias.DistanciaEuclidiana;
import co.edu.poligran.cluseva.distancias.Etiquetas;
import co.edu.poligran.cluseva.util.Agrupamiento;
import co.edu.poligran.cluseva.util.Grupo;

/**
 * @author HP
 * 
 */
public class MedidaSSE extends MedidaNoSupervisada {

	private Distancia distancia = new DistanciaEuclidiana();
	private Grupo grupo;

	public MedidaSSE(Agrupamiento clustering) {
		super(clustering);
	}
	
	public MedidaSSE(Distancia distancia, Grupo grupo) {
		super();
		this.distancia = distancia;
		this.grupo = grupo;
	}

	//@Override
	public double validity(Grupo grupo) {
		Double suma = 0.0;
		DistanciaEuclidiana distancia = new DistanciaEuclidiana();
		for( int i=0; i<grupo.getDataGrupo().size() ; i++ ){
			suma += Math.pow(distancia.calcular(grupo.getDataGrupo().get(i), grupo.getCentroidGrupo(), Etiquetas.DOS_ETIQUETAS), 2); 
			System.out.println( "grupo> "+grupo );
		}
		return suma;
	}
}
